#include<iostream>
#include<stdio.h>
#include<string.h>

#define NDEBUG
//关闭断言
#include<assert.h>

using namespace std;



size_t my_strlen(char* s)
{
    
    char* start = s;
    while (*s!='\0')
    {
        s++;
    }
    return s-start;
}






int main()
{
    //野指针（指针指向的位置不可知）
    //当指针指向的范围超出数组arr的范围时，p为野指针

    /*
    int *p;
    *p = 20;
    指针未初始化，p中存放的地址随机

    */
   //如何规避野指针
   //明确的赋值或赋NULL
   //0 数字0 ‘0’字符0 （ASCII值为48）NULL 空指针 ‘\0’转义字符
    //assert() 括号中可含表达式，若真则继续，假则报错
    int * p = NULL;
    assert(p != NULL);


    return 0;
}